package com.wpf.system.mapper;

import com.wpf.system.entity.FieldBook;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wpf.system.entity.vo.FieldBookVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author ferna
* @description 针对表【field_book(场地预约情况表)】的数据库操作Mapper
* @createDate 2023-01-30 11:10:10
* @Entity com.wpf.system.entity.FieldBook
*/
public interface FieldBookMapper extends BaseMapper<FieldBook> {

    /**
     * 查询某天某父级及其子级场馆的预约情况
     * @param fids 场馆id
     * @param bookDate 预约进场时间
     * @return 预约情况
     */
    List<FieldBook> getFieldBookByDate(@Param("fids")List<Long> fids, @Param("bookDate")String bookDate);


    /**
     * 检查用户选择的场馆是否还可以预约
     * @param fid 场馆id
     * @param tid 时间段id
     * @param bookDate 预约时间
     * @return
     */
    Integer checkFieldCanBook(@Param("fid")Long fid,@Param("tid")Long tid, @Param("bookDate")String bookDate);

    /**
     * 批量物理删除预约记录
     * @param ids 删除的预约记录id集
     * @return 是否删除成功
     */
    int deleteFieldByIds(@Param("ids") List<Long> ids);

    /**
     * 根据条件查看预约情况
     */
    List<FieldBookVO> getAllFieldBook(
            @Param("no") String no,@Param("uid") Long uid,@Param("name") String name,@Param("nid") String nid,
            @Param("username") String username,@Param("phone") String phone,
            @Param("startTime") String startTime,@Param("endTime") String endTime,
            @Param("page") Integer page,@Param("pageSize") Integer pageSize
    );

    /**
     * 标记超时的预约信息
     */
    void checkTimeOutFieldBook();
}




